home *** CD-ROM | disk | FTP | other *** search
- ;------------------------------------------------------------------------------
- ; .ss.
- ; `²²'
- ; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
- ; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
- ; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
- ; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
- ; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
- ; .sS²°$$$²²°"' d²°'
- ; .$$² .$$'
- ; $$$.,d$$'
- ; `²S$$S²'
- ;------------------------------------------------------------------------------
- ; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
- ;------------------------------------------------------------------------------
- ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
- ;------------------------------------------------------------------------------
-
- Integer TINTEGER001(26)
- String STRING001
- String TSTRING002(26)
- String STRING003
- String TSTRING004(26)
- String STRING005
- String STRING006
- String STRING007
- String STRING008
- String STRING009
- String STRING010
- String STRING011
- String STRING012
- String STRING013
- String STRING014
- String STRING015
- String STRING016
- String STRING017
- String STRING018
- Int INT001
- Int INT002
- Int INT003
- Int INT004
- Int INT005
- Int INT006
- Int INT007
- Int INT008
- Int INT009
- Int INT010
- Declare Procedure PROC001(Var String STRING019, Int INT011)
-
- ;------------------------------------------------------------------------------
-
- STRING001 = PPEPath() + "BOOKTEXT" + LangExt()
- If (!Exist(STRING001)) STRING001 = PPEPath() + "BOOKTEXT"
- FOpen 1, STRING001, 0, 0
- FGet 1, STRING008
- FGet 1, STRING009
- FGet 1, STRING010
- FGet 1, STRING011
- FGet 1, STRING003
- Tokenize STRING003
- INT006 = GetToken()
- INT007 = GetToken()
- FGet 1, STRING012
- FGet 1, STRING013
- FGet 1, STRING014
- FGet 1, STRING015
- FGet 1, STRING016
- FGet 1, STRING017
- FGet 1, STRING018
- FClose 1
- StartDisp 1
- DispFile PPEPath() + "BOOK", 4
- STRING001 = PPEPath() + "DATA\" + Strip(Left(U_Name(), 4) + Right(U_Name(), 4), " ")
- STRING006 = STRING008 + "[" + STRING010 + "a" + STRING008 + "]"
- INT003 = 1
- If (Exist(STRING001)) Then
- INT001 = 1
- FOpen 1, STRING001, 0, 0
- :LABEL001
- If (Ferr(1)) Goto LABEL002
- FGet 1, TSTRING002(INT001)
- Inc INT001
- Goto LABEL001
- :LABEL002
- FClose 1
- For INT001 = 1 To 26
- STRING003 = Trim(TSTRING002(INT001), " ")
- If (STRING003 == "") Then
- INT002 = INT001 - 1
- INT003 = 1
- AnsiPos 10, 6
- Gosub LABEL016
- Goto LABEL003
- Endif
- If (INT001 < 14) Then
- AnsiPos 12, INT001 + 5
- Else
- AnsiPos 46, INT001 - 8
- Endif
- Print STRING003
- Next
- Else
- AnsiPos 10, 6
- Gosub LABEL016
- Endif
- :LABEL003
- While (STRING007 <> Chr(27)) Do
- STRING007 = TInkey(0)
- Select Case (STRING007)
- Case "2"
- STRING007 = "DOWN"
- Case "8"
- STRING007 = "UP"
- Case "6"
- STRING007 = "RIGHT"
- Case "4"
- STRING007 = "LEFT"
- End Select
- If (STRING007 == "UP") Then
- If (INT003 == 1) Then
- INT003 = 26
- Goto LABEL004
- Endif
- Dec INT003
- :LABEL004
- Gosub LABEL016
- Endif
- If (STRING007 == "DOWN") Then
- If (INT003 == 26) Then
- INT003 = 1
- Goto LABEL005
- Endif
- Inc INT003
- :LABEL005
- Gosub LABEL016
- Endif
- If ((STRING007 == "LEFT") || (STRING007 == "RIGHT")) Then
- If (INT003 < 14) Then
- INT003 = INT003 + 13
- Goto LABEL006
- Endif
- INT003 = INT003 - 13
- :LABEL006
- Gosub LABEL016
- Endif
- If (((Len(STRING007) == 1) && (Asc(Upper(STRING007)) > 64)) && (Asc(Upper(STRING007)) < 91)) Then
- INT003 = Asc(Upper(STRING007)) - 64
- Gosub LABEL016
- STRING007 = Chr(13)
- Endif
- If (STRING007 == Chr(13)) Then
- INT004 = GetX()
- INT005 = GetY()
- If (INT003 < 14) Then
- AnsiPos 12, INT003 + 5
- Goto LABEL007
- Endif
- AnsiPos 46, INT003 - 8
- :LABEL007
- Color 7
- PROC001(TSTRING002(INT003), 26)
- If (Trim(TSTRING002(INT003), " ") == "") Then
- TSTRING002(INT003) = ""
- Endif
- Gosub LABEL014
- STRING007 = ""
- AnsiPos INT004, INT005
- Endif
- EndWhile
- Backup 3
- Print STRING006
- Backup 3
- INT004 = GetX()
- INT005 = GetY()
- AnsiPos INT006, INT007
- INT001 = 0
- Print STRING012
- INT009 = GetX()
- INT010 = GetY()
- Print STRING014 + STRING015 + STRING017
- :LABEL008
- STRING003 = TInkey(0)
- Select Case (STRING003)
- Case "6"
- STRING003 = "RIGHT"
- Case "4"
- STRING003 = "LEFT"
- End Select
- If (STRING003 == "LEFT") Then
- If (INT001 == 0) Then
- INT001 = 2
- Goto LABEL009
- Endif
- Dec INT001
- :LABEL009
- Gosub LABEL012
- Endif
- If (STRING003 == "RIGHT") Then
- If (INT001 == 2) Then
- INT001 = 0
- Goto LABEL010
- Endif
- Inc INT001
- :LABEL010
- Gosub LABEL012
- Endif
- If (STRING003 == Chr(13)) Then
- If (INT001 == 0) Then
- Goto LABEL015
- Goto LABEL011
- Endif
- If (INT001 == 1) Then
- AnsiPos INT006, INT007
- Print Space(Len(StripAtx(STRING012 + STRING013 + STRING016 + STRING017)))
- STRING003 = ""
- STRING007 = ""
- AnsiPos INT004, INT005
- Print STRING005
- Goto LABEL003
- Goto LABEL011
- Endif
- If (INT001 == 2) Then
- Gosub LABEL013
- STRING003 = ""
- Endif
- Endif
- :LABEL011
- Goto LABEL008
- :LABEL012
- AnsiPos INT009, INT010
- Select Case (INT001)
- Case 0
- Print STRING014 + STRING015 + STRING017
- Case 1
- Print STRING013 + STRING016 + STRING017
- Case 2
- Print STRING013 + STRING015 + STRING018
- End Select
- Return
- :LABEL013
- Sort TSTRING002, TINTEGER001
- For INT008 = 0 To 26
- TSTRING004(INT008 + 1) = TSTRING002(TINTEGER001(INT008))
- Next
- For INT008 = 1 To 26
- TSTRING002(INT008) = TSTRING004(INT008)
- Next
- Gosub LABEL014
- INT001 = 2
- Gosub LABEL012
- Return
- :LABEL014
- For INT001 = 1 To 26
- TSTRING004(INT001) = TSTRING002(INT001)
- TSTRING002(INT001) = ""
- Next
- INT002 = 1
- For INT001 = 1 To 26
- If (Trim(TSTRING004(INT001), " ") <> "") Then
- TSTRING002(INT002) = TSTRING004(INT001)
- INT002 = INT002 + 1
- Endif
- Next
- INT002 = INT002 - 1
- For INT001 = 1 To 26
- If (INT001 < 14) Then
- AnsiPos 12, INT001 + 5
- Else
- AnsiPos 46, INT001 - 8
- Endif
- Print "@X08··························"
- If (INT001 < 14) Then
- AnsiPos 12, INT001 + 5
- Else
- AnsiPos 46, INT001 - 8
- Endif
- Color 7
- Print TSTRING002(INT001)
- Next
- Return
- :LABEL015
- If (INT002 > 0) Then
- Delete STRING001
- FOpen 1, STRING001, 1, 3
- For INT001 = 1 To INT002
- FPutLn 1, TSTRING002(INT001)
- Next
- FClose 1
- ElseIf (Exist(STRING001)) Then
- Delete STRING001
- Endif
- AnsiPos 1, 23
- End
- :LABEL016
- STRING005 = STRING009 + "[" + STRING011 + Chr(INT003 + 64) + STRING009 + "]@X0F"
- Backup 3
- Print STRING006
- If (INT003 < 14) Then
- AnsiPos 7, INT003 + 5
- Else
- AnsiPos 41, INT003 - 8
- Endif
- Print STRING005
- STRING006 = STRING008 + "[" + STRING010 + Chr(INT003 + 96) + STRING008 + "]"
- Return
- End
-
- ;------------------------------------------------------------------------------
-
- Procedure PROC001(Var String STRING019, Int INT011)
-
- String STRING020
- Int INT012
-
- Color 15
- INT012 = Len(STRING019)
- Print STRING019
- :LABEL017
- STRING020 = Upper(TInkey(0))
- If (STRING020 == Chr(13)) Goto LABEL018
- If (STRING020 == Chr(29)) Goto LABEL017
- If (STRING020 == Chr(8)) Then
- If (INT012 == 0) Goto LABEL017
- INT012 = INT012 - 1
- Backup 1
- Print "@X08·"
- Backup 1
- STRING019 = Left(STRING019, INT012)
- Goto LABEL017
- Endif
- If (!(Len(STRING020) == 1)) Goto LABEL017
- If (Asc(STRING020) < 31) Goto LABEL017
- If (INT012 == INT011) Goto LABEL017
- STRING019 = STRING019 + STRING020
- INT012 = INT012 + 1
- Print "@X08", STRING020
- Backup 1
- Delay 1
- Print "@X07", STRING020
- Backup 1
- Delay 1
- Print "@X0F", STRING020
- Goto LABEL017
- :LABEL018
-
- EndProc
-
-
- ;------------------------------------------------------------------------------
- ;
- ; Usage report (before postprocessing)
- ;
- ; ■ Statements used :
- ;
- ; 2 End
- ; 3 Color
- ; 87 Goto
- ; 70 Let
- ; 18 Print
- ; 53 If
- ; 1 DispFile
- ; 3 FOpen
- ; 3 FClose
- ; 13 FGet
- ; 1 FPutLn
- ; 1 StartDisp
- ; 2 Delete
- ; 12 Gosub
- ; 4 Return
- ; 2 Delay
- ; 3 Inc
- ; 2 Dec
- ; 1 Tokenize
- ; 18 AnsiPos
- ; 7 Backup
- ; 1 Sort
- ; 1 EndProc
- ;
- ;
- ; ■ Functions used :
- ;
- ; 52 +
- ; 10 -
- ; 33 ==
- ; 2 <>
- ; 15 <
- ; 7 <=
- ; 2 >
- ; 14 >=
- ; 48 !
- ; 16 &&
- ; 8 ||
- ; 4 Len(
- ; 4 Upper()
- ; 2 Left()
- ; 1 Right()
- ; 1 Space()
- ; 1 Ferr()
- ; 9 Chr()
- ; 4 Asc()
- ; 3 Trim()
- ; 2 U_Name()
- ; 1 StripAtx()
- ; 1 Strip()
- ; 4 PPEPath()
- ; 2 GetToken()
- ; 3 Exist()
- ; 1 LangExt()
- ; 3 GetX()
- ; 3 GetY()
- ; 3 TInkey()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Analysis flags : No flag
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Postprocessing report
- ;
- ; 7 For/Next
- ; 1 While/EndWhile
- ; 28 If/Then or If/Then/Else
- ; 3 Select Case
- ;
- ;------------------------------------------------------------------------------
- ; AEGiS Corp - Break the routines, code against the machines!
- ;------------------------------------------------------------------------------
-